#pragma once

#include "imgui.h"
#include <string>

class ImGuiApp {
public:
	std::wstring windowTitle;
	int windowWidth, windowHeight;
	ImVec4 clearColor;
	bool done;
	int frameDelay;

public:
	static ImGuiApp* create();
	ImGuiApp()
		: windowTitle(L"Dear ImGui DirectX11 Example")
		, windowWidth(1280)
		, windowHeight(800)
		, clearColor(0.45f, 0.55f, 0.60f, 1.00f)
		, done(false)
		, frameDelay(0)
	{
	}
	virtual ~ImGuiApp() {}
	virtual void setupContext() = 0;
	virtual void destroyContext() = 0;
	virtual void loadFonts() = 0;
	virtual void drawFrame() = 0;
};
